模型压缩
DP 模型的 Embedding net 网络数目是原子类型数目的倍,随着原子类型增多,Embedding net 数目会快速增加,导致用于反向传播求导的计算图的规模会增加,成为 DP 模型做推理的瓶颈之一。如下我们对于一个五元合金系统在 DP 模型的推理过程的时间统计所示,对于 Embedding net 计算以及梯度计算的时间占比超过 90%,这存在大量的优化空间。Embedding net 的输入为一个的单值,输出为个值(为 Embedding net 最后一层神经元数目)。因此,可以将 Embedding net 通过个单值函数代替。我们在这里实现论文DP Compress中使用的五阶多项式压缩方法,同时我们也提供了基于 Hermite 插值方法的三阶多项式压缩方法供用户自由选择。在我们的测试中,当网格大小 时,三阶多项式与五阶多项式能够达到相同的精度,详细测试数据见性能测试。
使用方法
对于一个训练后 DP 模型做模型压缩,完整的 模型压缩指令如下:
PWMLFF compress dp_model.ckpt -d 0.01 -o 3 -s cmp_dp_model
- compress 是压缩命令
- dp_model.ckpt为待压缩模型文件名称,为必须要提供的参数
- -d 为S_ij 的网格划分大小,默认值为0.01
- -o 为模型压缩阶数,3为三阶模型压缩,5为五阶模型压缩,默认值为3
- -s 为压缩后的模型名称,默认名称为“cmp_dp_model”
模型压缩之后,在 lammps 中做分子动力学模拟使用方式与标准的DP 模型相同。